package com.yfp.operation.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
import java.util.Map;

/**
 * 设备机器表
 *
 * @TableName machine
 */
@TableName(value = "machine")
@Data
public class MachineDO implements Serializable {
    /**
     * 机器id
     */
    @TableId
    private String machineId;

    /**
     * 公司id
     */
    private String companyId;

    /**
     * 区域id
     */
    private String areaId;

    /**
     * 线路id
     */
    private String routeId;

    /**
     * 点位id
     */
    private String positionId;

    /**
     * 设备类型（1：二代机  2：三代机）
     */
    private Integer machineType;

    /**
     * 设备名称
     */
    private String machineName;

    /**
     * 维修负责人userid
     */
    private String serviceContracts;

    /**
     * 设备投放时间
     */
    private Date operationTime;

    /**
     * 投放地址
     */
    private String positionAddr;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 纬度
     */
    private String latitude;

    /**
     * 冷藏温度
     */
    private String temperature;

    /**
     * 开门检测（正常1/异常0）
     */
    private Integer openDoorCheck;

    /**
     * 关门检测（正常1/异常0）
     */
    private Integer closeDoorCheck;

    /**
     * 出餐检测（正常1/异常0）
     */
    private Integer outMealCheck;

    /**
     * 取餐检测（正常1/异常0）
     */
    private Integer takeMealCheck;

    /**
     * 设备电量
     */
    private String kwh;

    /**
     * 运营状态（1：运营中，2：休息中 3：故障中 4: 补货）
     */
    private Integer operationStatus;

    /**
     * 启用1/禁用0
     */
    private Integer enable;

    /**
     * 固件版本
     */
    private String firmwareVersion;

    /**
     * app版本
     */
    private String appVersion;

    /**
     * app版本名称
     */
    private String appVersionName;

    /**
     * 主广告id
     */
    private String masterAdId;

    /**
     * 副广告id
     */
    private String secondaryAdId;

    /**
     * VMC连接状态
     */
    private String vmcStatus;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 是否删除
     */
    private Boolean isDelete;

    /**
     * 设备型号
     */
    private String machineModel;

    /**
     * 创建人-关联用户id
     */
    private Long createOper;

    /**
     * 设备编号
     */
    private String machineSn;

    /**
     * 0- 支付宝/微信 1-微信 2-支付宝
     */
    private Integer payType;

    /**
     * 备注
     */
    private String remark;

    /**
     * 设备库存阈值（0-100）
     */
    private String threshold;

    /**
     * 在线状态 0：离线 1：在线
     */
    private Integer onlineStatus;

    /**
     * 温度检测（正常1/异常0）
     */
    private Integer temperatureCheck;

    /**
     * 网络检查（正常1/异常0）
     */
    private Integer networkCheck;

    /**
     * 设备检查（正常1/异常0）
     */
    private Integer deviceCheck;

    /**
     * 离线更新时间
     */
    private Timestamp offlineUpdateTime;

    /**
     * 城市名称
     */
    private String cityName;


    @Schema(description = "部门ID（数据权限使用）")
    private Long deptId;

    @JsonIgnore
    @Schema(hidden = true)
    @TableField(exist = false)
    private String searchValue;

    /**
     * 请求参数
     */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    @Schema(hidden = true)
    @TableField(exist = false)
    private Map<String, Object> params;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}